#include "ckey.h"

#define press_level 1

/* is key press */
static bool is_mykey_press(void)
{
    return gpio_read() == press_level ? true : false;
}

/* my key callback handle */
static void mykey_even(key_handle_t *handle, KEY_ENUM status)
{
    switch (status) {
    case KEY_CLICK:
        printf("click\n");
        break;
    case KEY_RELEASE:
        printf("release\n");
        break;

    case KEY_PRESS:
        printf("press\n");
        break;

    case KEY_LONG_PRESS:
        printf("long press\n");
        break;

    case KEY_MULTIPLE_CLICK:
        printf("multiple click, cout:%d\n", Key_GetMultipleCount(handle));
        break;

    default:
        break;
    }
}

void example_key1_init(void)
{
    static key_handle_t my_key1;
  
    Key_InitSetting(&my_key1, is_mykey_press, mykey_even);
    Key_Add(&my_key1);

    // 添加多个按键
    // static key_handle_t my_key2;
  
    // Key_InitSetting(&my_key2, is_mykey2_press, mykey2_even);
    // Key_Add(&my_key2);

    // static key_handle_t my_key3;
  
    // Key_InitSetting(&my_key3, is_mykey3_press, mykey3_even);
    // Key_Add(&my_key3);
}

int main (void)
{
    example_key1_init();

    while(1) {
        Key_Handler();
        delay_ms(DEFAULT_KEY_SCAN_INTERVAL);
    }
  
    return 0;
}